18c0693f

Пример "Заем [денег]"


Давайте разберем детали на примере. Я постараюсь на простеньком бизнес-процессе показать, как определяется процентная ставка (interest rate) возможного заемщика (loan customer), когда услуги по заемам нескольких банков запрашиваются в соответствии с требованиями его заема.

На рисунке 1 представлены первые шаги, необходимые для составления процесса получения заема (loan process). Я сначала проведу вас по схеме процесса (process flow), особо обращая внимание на некоторые ключевые конструкции языка BPEL, а затем рассмотрим фрагменты кода реального процессного языка. (Рассматриваемый пример скачан с OTN.) При изучении течения процесса акцент будет сделан на синтаксисе процессного языка, взаимодействию процесса с конечным пользователем будет уделено меньше внимания.


Рисунок 1: Начальные шаги для получения заема

Первое, запрос для оценки заявки на заем (loan assessment) – это вызов Web-сервиса, полученый через действие . Далее, данные о клиенте выбираются и приводятся к формату, совместимому с сервисом каждого банка, через действие. Сервисы The United Loan Service и the American Loan Service вызываются параллельно из действия , содержащего два действия . По завершению оценки, сервис каждого банка возвращает управление бизнес-процессу получения заема со своей оценкой. Этот входящий (inbound) запрос представлен действием .

Далее, эти результаты сравниваются друг с другом, чтобы определить наилучшую ставку, благодаря использованию действий и , аналогичных конструкции if-then-else в языках программирования. В рамках действия выбирается наилучшая ставка и ее значение присваивается переменной для возврата , благодаря использованию действия . Наконец, результат обоих этих вызовов посылается обратно источнику вызова, благодаря другому действию .

Рассмотрим детали реализации

Процесс, определенный в BPEL, как правило, состоит из двух больших секций: секции деклараций и секции процессных действий, окруженных внешним элементом, который называется и идентифицирует имя/название процесса.


Глобальные декларации. Как правило, первая секция процесса содержит глобальные декларации, в том числе те, которые определяют используемые Web-сервисы и называются , а также те, которые определяют используемые переменные и называются .
На приведены листинги деклараций United Loan и American Loan, а также декларации , ожидаемые этими Web-сервисами. Эти конструкции создаются в Oracle BPEL Designer в начале этапа проектирования до того, как сам процесс написан.
Другие высокоуровневые конструкции, такие, как обработчики глобальных ошибок (global error handlers), называемые , обработчики ошибок глобальных транзакций (global transaction failure handlers), называемые , также декларируются в этой первой секции.
Определение процесса. Вторая часть BPEL-процесса содержит логику процесса — шаги, которые будут предприняты, и Web-сервисы, которые будут использованы для выполнения полезной работы. Попросту говоря, есть два типа действий: